package cn.jmi.jmiopenatommanagementsystem.mapper;

import cn.jmi.jmiopenatommanagementsystem.pojo.User;
import org.springframework.data.repository.CrudRepository;
import org.springframework.stereotype.Repository;

/**
 * 用户数据访问层接口
 * 继承Spring Data JPA的CrudRepository，提供用户实体的基本CRUD操作
 *
 * @Repository 注解：
 * - 标识该类为数据访问组件（DAO）
 * - 让Spring自动扫描并管理该Bean
 * - 将数据库操作异常转换为Spring的统一数据访问异常
 *
 * 继承CrudRepository<User, Long>说明：
 * - User：管理的实体类类型
 * - Long：实体主键的数据类型
 *
 * CrudRepository提供的默认方法包括：
 * - save(S entity)：保存实体
 * - findById(ID id)：根据ID查询
 * - existsById(ID id)：判断是否存在
 * - findAll()：查询所有
 * - count()：统计数量
 * - deleteById(ID id)：根据ID删除
 * - delete(T entity)：删除实体
 * - deleteAll()：删除所有
 *
 * 无需手动实现这些方法，Spring Data JPA会自动生成实现
 */
@Repository
public interface UserMapper extends CrudRepository<User, Long> {
    // 可以根据业务需求在此处添加自定义查询方法
    // 方法命名遵循Spring Data JPA的命名规范，无需实现
    // 例如：
    // User findByUsername(String username);
    // List<User> findByEmailContaining(String email);
}